import {ref} from "vue"

export interface ItemType {
    type: string;  // 物品类型
    name: string;  // 物品名称
    amount: number; // 物品数量
    description?: string; // 物品描述
}

// 矿洞坐标类型
export interface CaveCoordType {
    x: number;
    y: number;
    z: number; // 深度
}

// 矿洞数据
export interface CaveType {
    // 矿洞坐标
    coord: CaveCoordType;
    // 矿洞等级
    level: number;
    // 矿洞状态
    status: string;
    // 矿洞类型
    type: string;
    // 矿洞内容（矿石或灵石）
    content?: any;
}

export const useXianLuStore = defineStore('xianluStore', () => {
    const userinfo = ref({
        expAll: 0,
        level: 1,
    })
    const userKkillList = ref([
        {
            name: "种植",
            level: 1,
            expAll: 0,
            desc: "掌握作物生长规律与培育技巧，从基础蔬菜到珍稀草药都能熟练栽培。高级种植可提高产量、缩短生长周期并解锁特殊植物。",
        },
        {
            name: "挖矿",
            level: 1,
            expAll: 0,
            desc: "勘探矿物资源与地质结构的专业技能。随着等级提升，可发现更珍贵的矿石，提高开采效率并降低体力消耗。掌握爆破技巧后可进入深层矿洞。",
        },
        {
            name: "养殖",
            level: 1,
            expAll: 0,
            desc: "动物驯养与繁殖的全面技术。包括饲料配比、疾病防治和品种改良。高级养殖可解锁稀有物种，提升产物品质（如金蛋、豪华羊毛等）。",
        },
    ])
    
    // 物品列表
    const itemList = ref<ItemType[]>([])
    
    // 添加物品到背包
    function addItem(item: ItemType) {
        // 检查是否已有该物品
        const existingItem = itemList.value.find(i => i.type === item.type && i.name === item.name)
        
        if (existingItem) {
            // 如果已有该物品，增加数量
            existingItem.amount += item.amount
        } else {
            // 如果没有该物品，添加到列表
            itemList.value.push(item)
        }
    }
    
    // 添加经验
    function addExp(exp: number) {
        userinfo.value.expAll += exp
    }

    // 获取木头数量
    const getMuTouCount = computed(() => {
        return itemList.value.filter(item => item.type === 'wood').reduce((acc, cur) => acc + cur.amount, 0)
    })

    

    


    return {
        userinfo,
        userKkillList,
        itemList,
        getMuTouCount,
        addItem,
        addExp,
    }
})